package com.ycm.vo.dict;

import cn.hutool.core.collection.ListUtil;
import io.swagger.annotations.ApiModel;
import lombok.Builder;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author ycm
 * @date 2024-11-15
 */
@Data
@Builder
@ApiModel
public class DictVo {
    private String name;

    private String dictCode;

    private List<DictItemVo> dictDataList;

    /**
     * 默认的字典列表
     */
    public static List<DictVo> _default() {
        List<DictVo> dicts = new ArrayList<>();
        dicts.add(DictVo.builder()
                .name("通知级别")
                .dictCode("notice_level")
                .dictDataList(ListUtil.toList(
                        DictItemVo.builder().label("低").value("L").tagType("info").build(),
                        DictItemVo.builder().label("中").value("M").tagType("warning").build(),
                        DictItemVo.builder().label("高").value("H").tagType("danger").build()
                ))
                .build()
        );

        dicts.add(DictVo.builder()
                .name("通知类型")
                .dictCode("notice_type")
                .dictDataList(ListUtil.toList(
                        DictItemVo.builder().label("系统升级").value("1").tagType("success").build(),
                        DictItemVo.builder().label("系统维护").value("2").tagType("primary").build(),
                        DictItemVo.builder().label("安全警告").value("3").tagType("danger").build(),
                        DictItemVo.builder().label("假期通知").value("4").tagType("success").build(),
                        DictItemVo.builder().label("公司新闻").value("5").tagType("primary").build(),
                        DictItemVo.builder().label("其他").value("99").tagType("info").build()
                ))
                .build()
        );

        dicts.add(DictVo.builder()
                .name("性别")
                .dictCode("gender")
                .dictDataList(ListUtil.toList(
                        DictItemVo.builder().label("男").value("1").tagType("primary").build(),
                        DictItemVo.builder().label("女").value("2").tagType("danger").build(),
                        DictItemVo.builder().label("保密").value("0").tagType("info").build()
                ))
                .build()
        );

        return dicts;
    }
}
